package control;

import java.util.ArrayList;
import java.util.List;

import dao.HospedeDao;

import model.Hospede;


	public class CtrlHospede {

			HospedeDao hDao = new HospedeDao();

			public boolean insereHospede(Hospede hospede){
				boolean inserido = false;
				try{

					hDao.insereHospede(hospede);
					inserido = true;
				}catch(Exception e){
					e.printStackTrace();
				}
				return inserido;
			}
			
			public boolean validaCPF(String strCpf){
			    int iDigito1Aux = 0, iDigito2Aux = 0, iDigitoCPF;
			    int iDigito1 = 0, iDigito2 = 0, iRestoDivisao = 0;
			    String strDigitoVerificador, strDigitoResultado;
			 
			    if (! strCpf.substring(0,1).equals("")){
			        try{
			            strCpf = strCpf.replace('.',' ');
			            strCpf = strCpf.replace('-',' ');
			            strCpf = strCpf.replaceAll(" ","");
			            for (int iCont = 1; iCont < strCpf.length() -1; iCont++) {
			                iDigitoCPF = Integer.valueOf(strCpf.substring(iCont -1, iCont)).intValue();
			                iDigito1Aux = iDigito1Aux + (11 - iCont) * iDigitoCPF;
			                iDigito2Aux = iDigito2Aux + (12 - iCont) * iDigitoCPF;
			            }
			            iRestoDivisao = (iDigito1Aux % 11);
			            if (iRestoDivisao < 2) {
			                iDigito1 = 0;
			            } else {
			                iDigito1 = 11 - iRestoDivisao;
			            }
			            iDigito2Aux += 2 * iDigito1;
			            iRestoDivisao = (iDigito2Aux % 11);
			            if (iRestoDivisao < 2) {
			                iDigito2 = 0;
			            } else {
			                iDigito2 = 11 - iRestoDivisao;
			            }
			            strDigitoVerificador = strCpf.substring(strCpf.length()-2, strCpf.length());
			            strDigitoResultado = String.valueOf(iDigito1) + String.valueOf(iDigito2);
			            return strDigitoVerificador.equals(strDigitoResultado);
			        } catch (Exception e) {
			            return false;
			        }
			    } else {
			        return false;
			    }
			}
			
			public Hospede consultaHospede(String cpf){
				return hDao.consultaHospede(cpf);
			}
			

			public boolean atualizaHospede(Hospede hospede){
				boolean editado = false;
				
				hDao.atualizaHospede(hospede);
				return editado;
			}
			
			public boolean deletaHospede(String cpf){
				boolean deletado = false;
				hDao.deletaHospede(cpf);
				return deletado;
			}
		
			public List<Hospede> listaCompletaHospedes(){
				List<Hospede> listaRetorno = new ArrayList<>();
				HospedeDao hospDao = new HospedeDao();
				listaRetorno = hospDao.listaCompletaHospede();				
				return listaRetorno;				
			}
	}


